// src\locales\index.ts
import { createI18n } from 'vue-i18n'
import zhCn from './package/zh-cn'
import en from './package/en'
import cacheUtils from '@/utils/cacheUtils'
import { useAppStore } from '@/store/modules/appStore'

// 创建 i18n
const i18n = createI18n({
  legacy: false, // 解决Not available in legacy mode报错
  globalInjection: true, // 全局模式，可以直接使用 $t
  locale: cacheUtils.get('lang') || 'zhCn', // 从本地缓存中取语言，如果没有 默认为中文
  fallbackLocale: 'en', // set fallback locale
  messages: {
    zhCn,
    en
  }
})

// 注意，因为 pinia还没初始化就进行取值会有问题，所以这里我们单独暴露一个方法，在 src/main.ts中的 app.mount("#app").$nextTick 中调用
// 初始化语言监听
export function initLangListener() {
  const appStore = useAppStore()
  console.log('appStore', appStore)
  // 监听语言切换时，同步本窗口更新
  // window.ipcRenderer.on('lang:change', (_, lang: string) => {
  //   // window.ipcRenderer.on("lang:change", (event, lang: string) => {
  //   i18n.global.locale.value = lang
  //   appStore.lang = lang
  // })
}

export default i18n
